<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Promise的基本使用</title>
</head>
<body>
  <script>
    //1.使用setTimeout
    // setTimeout(() => {
    //   console.log('Hello World');
    // }, 1000)

    //new时传入一个函数(resolve, reject)
    //resolve,reject 本身就是函数

    // new Promise((resolve, reject) => {
    //   setTimeout(() => {
    //     resolve()
    //   }, 1000)
    // }).then(() => {
    //   console.log('Hello World')
    //   console.log('Hello World')
    //   console.log('Hello World')
    //   console.log('Hello World')
    //
    //   return new Promise((resolve, reject) => {
    //     setTimeout(() => {
    //       resolve()
    //     }, 1000)
    //   })
    // }).then(() => {
    //   console.log('Hello VueJs')
    //   console.log('Hello VueJs')
    //   console.log('Hello VueJs')
    //   console.log('Hello VueJs')
    //
    //   return new Promise((resolve, reject) => {
    //     setTimeout(() => {
    //       resolve()
    //     }, 1000)
    //   })
    // }).then(() => {
    //   console.log('Hello Python')
    //   console.log('Hello Python')
    //   console.log('Hello Python')
    //   console.log('Hello Python')
    // })

    //什么情况下会用的Promise
    // 一般情况有异步操作时，使用Promise对异步擦做进行封装
    new Promise((resolve, reject) => {
      setTimeout(() => {
        //成功的时候回调resolve
        //resolve()

        //失败的时候回调reject
        reject('error message')
      })
    }).then(data => {
      console.log(data);
    }).catch(err => {
      console.log(err);
    })
  </script>
</body>
</html>